#include "Date.h"

int main()
{
	Date d1(2023, 4, 26);
	d1.print();  //2023-4-26

	d1 += 100;
	d1.print(); //2023-8-4

	Date d2(d1);
	d2.print(); //2023-8-4

	//Date d3(d2 + 100);  //调用拷贝构造函数
	Date d3 = d2;  //调用拷贝构造函数
	d3++;  //d3.operator++（0）
	++d3;  //d3.operator++（）
	d3.print(); //2023-8-6

	cout << (d1 == d2) << endl;  //1
	cout << (d1 < d3) << endl;  //1

	Date d5(2023, 5, 5);
	d5 += -50;
	d5.print();  //2023-3-16
	d5 -= -50;
	d5.print();  //2023-5-5

	Date d6(d5-10);  //2023-4-26
	d6.print();

	d6++;  //d6.operator++（0）
	++d6;  //d6.operator++（）
	d6.print(); //2023-4-28

	Date d7(2023, 5, 5);
	Date d8(1949,10,1);
	cout << d7 - d8 << endl;
	cout << d8 - d7 << endl;

	//成员函数实现
	//d7 << cout;
	//d7.operator<<(cout);

	//全局+友元函数实现
	cout << d7 << d8;

	//cin >> d7 >> d8;
	//cout << d7 << d8;

	const Date d9(2024, 7, 10);
	cout << d9;

	//d9 < d1;  成员函数没有const修饰会报错 因为成员函数的this指针权限扩大
	d1 < d9;
	//cout << (d9 < d1) << endl;  成员函数const修饰不会报错 因为成员函数的this指针权限缩小

	//Date d10;
	//cin >> d10;

	cout << &d9 <<" "<< &d1 << endl;
	cout << endl;
	Date d10(2024, 7, 13);
	Date d11(2024, 7, 22);
	Date d12(2024, 7, 23);


	cout << "和小帅见面还有：" << d11 - d10 << "or" << d12 - d10 << "天" << endl;

	return 0;

}

